const fs = require('fs');
const path = require( 'path' );

const root = path.resolve( '.' );

function traversal( pathname ){
    if( fs.existsSync( pathname ) ) {
        let stats = fs.statSync( pathname );
        if( stats.isDirectory() ) {
            console.log( '目录: ' + pathname );
            let items = fs.readdirSync( pathname );
            items.forEach( item => {
                if( item != '.git' ) {
                    // 根据父路径和文件名(或目录名)解析得到完整路径
                    let pn = path.resolve( pathname , item );
                    // 递归调用 traversal 函数
                    traversal( pn );
                }
            });
            // 让当前函数立即结束
            return;
        }
        if( stats.isFile() ){
            console.log( '\t文件: ' + pathname );
            // 让当前函数立即结束
            return;
        }
        // 让当前函数立即结束
        return;
    }
    console.log( `文件或目录(${pathname})不存在` );
}

traversal( root );

// 任务:
// 递归输出 nodeapi 目录中所有的目录名和文件名
// 如果 nodeapi 目录中包含子目录，则采用同样的方式输出子目录中的项目

// 注意:
// nodeapi 是目前我们所使用的 项目名称 (也是git仓库名称)